﻿using System.Collections.Generic;
using LoungeRepo.Contracts.Core;

namespace LoungeRepo.Contracts.Normalizer
{
    public interface IEntityNormalizer
    {
        IEnumerable<INormalizedEntity> Normalize(object nonEntityObject, string id, string partition);
        IEnumerable<INormalizedEntity> Normalize(object entityObject);
        
        object Denormalize(INormalizedEntity normalizedEntity);

        bool TryExtractEntityIdentity(object entityObject, out ILoungeRepoEntityIdentity entityIdentity);
    }
}
